package com.sunzm.spark.core.rdd.transformation.exercise

import com.sunzm.spark.core.rdd.transformation.SparkRDDTransformation.sortByAndsortByKeyFunctionDemo
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
 *
 * SparkRDD练习
 *
 * @author Administrator
 * @version 1.0
 * @date 2021-06-08 12:32
 */
object SparkRDDTransformationExercise {
  def main(args: Array[String]): Unit = {
    def main(args: Array[String]): Unit = {
      val conf = new SparkConf().setAppName("RDD转换类算子示例")
        .setMaster("local[*]")
      val sc: SparkContext = new SparkContext(conf)

      //mapFunctionDemo(sc)
      //filterFunctionDemo(sc)
      //flatMapFunctionDemo(sc)
      //mapPartitionsFunctionDemo(sc)
      //mapPartitionsWithIndexFunctionDemo(sc)
      //unionIntersectionAndDiffFunctionDemo(sc)
      //bykeyFunctionDemo(sc)
      sortByAndsortByKeyFunctionDemo(sc)

      sc.stop()
    }
    /**
     * map算子：  map(func)
     * 每个元素都使用 func 函数进行一次转换，形成一个新的RDD
     * 原来有几个元素，map后还是几个元素
     * map算子是一对一操作，不会改变元素的数量
     *
     * @param sc
     */

    def mapFunctionDemo(sc: SparkContext): Unit ={

      val dataRDD: RDD[String] = sc.textFile("\"data/spark/sql/msgLog.log\"")

      /*
    需求：
    过滤出数据中action=5的所有数据，只保留action和sessionId字段
     */




    }


  }
}
